/**
 * url： https://101.zoo.team/zi-fu-chuan/zi-fu-chuan-part-2-bao-shu-fan-zhuan-zi-fu-chuan-he-zi-fu-chuan-zhong-de-di-yi-ge-wei-yi-zi-fu#bao-shu
 * 
 * 报数序列是一个整数序列，按照其中的整数序列的顺序进行报数，得到下一个数。
 * n的取值范围是 1 <= n <= 30
 * 
 * 示例1:
 * 输入：1
 * 输出："1"
 * 
 * 示例2:
 * 输入：4
 * 输出："1211"
 * 
 */


/**
 * 递归
 * 
 */

const countAndSay1 = (n) => {
    if (n === 1) {
        return "1"
    }
    const res = countAndSay1(n-1)
    return res.replace(/(\d)\1*/g, item => `${item.length}${item[0]}`)
}


/**
 * 循环法
 * 
 * 由 1 算到 n
 */

const countAndSay2 = (n) => {
    let res = "1"
    for (let i = 1 ; i < n ; i++) {
        res = res.replace( /(\d)\1*/g, item => `${item.length}${item[0]}` )
    }
    return res
}
